function lstinf$(a$,b$,c$)
  adra=1:adrb=1:blngt=len(b$):d$=""
  while adrb<=blngt
    if mid$ (a$,adra,1)=mid$ (b$,adrb,1) then:adrb+=1:end if
    adra=adra+1
    end while
  while mid$(a$,adra,1)<>left$(c$,1)
    d$=d$+mid$(a$,adra,1):adra=adra+1
    end while
  lstinf$=d$
  end function

function vldc(a$)
  t0$="!"+a$+".0.0.0."
  t1$=lstinf$(t0$,"!",".")
  t2$=lstinf$(t0$,".",".")
  t3=10^(len(t2$))
  vldc=val(t1$)+(val(t2$)/t3)
  end function

dim chfq[16],chvl[16]

finp$="_.csv"
if argc>2 then:finp$=argv(2):end if

print"56676D20"
print"FFFFFF0F"
print"51010000"
print"4C4F1B40"
print"00000000"
print"C3530000"
print"75293400"
print"AD2B0000"
print"68AC1800"
print"3C000000"
print"0C001105"
print"0000000000000000"
print"0C000000"
print"0000000000000000"

print"508F 503F 509F"
print"50AF 503F 50BF"
print"50CF 503F 50DF"
print"50EF 503F 50FF"
print"308F 303F 309F"
print"30AF 303F 30BF"
print"30CF 303F 30DF"
print"30EF 303F 30FF"

lct=0

open finp$ for input as #1
while eof(1)=0
  file input #1,txrd$
  setcaption("b:"+str$(lct)):lct+=1
  if mid$(txrd$,1,1)="[" then:
    if mid$(txrd$,2,1)="f" then:
      chid=val(mid$(txrd$,3,2))
      chid=chid mod 8 'sn76489 has 8 channels
      chfqv=vldc(lstinf$(txrd$,":","]"))
      chfqv2=int(26.6984611843*2^(8-chfqv))
      if chfqv2>1023 then:chfqv2=1023:end if
      if chfqv2<0 then:chfqv2=0:end if
      chchrfq$=right$("000"+hex$(chfqv2),3)
      if chid <=3 then
        txrgo$="50"+right$("0"+hex$(8+2*chid),1)+mid$(chchrfq$,3,1)
        txrgo$+=" 50"+mid$(chchrfq$,1,2)
      else
        txrgo$="30"+right$("0"+hex$(8+2* (chid mod 4) ),1)+mid$(chchrfq$,3,1)
        txrgo$+=" 30"+mid$(chchrfq$,1,2)
        end if
      print ucase$(txrgo$)
      end if
    if mid$(txrd$,2,1)="v" then:
      chid=val(mid$(txrd$,3,2))
      chid=chid mod 8 'sn76489 has 8 channels
      chvlv=15-(vldc(lstinf$(txrd$,":","]"))*0x10)
      chchrvl$=right$("0"+hex$(chvlv),1)
      if chid<=3 then
        txrgo$="50"+right$("0"+hex$(9+chid*2),1)+chchrvl$
      else
        txrgo$="30"+right$("0"+hex$(9+ (chid mod 4) *2),1)+chchrvl$
        end if
      print ucase$(txrgo$)
      end if
    if mid$(txrd$,2,3)="wvb" then:
      wvblv=vldc(lstinf$(txrd$,":","]"))
      wvblv2=wvblv*44100
      wvblv3a=wvblv2 mod 65536
      wvblv3b=int(wvblv2/65536)
      wvblv3as$=ucase$(right$("0000"+hex$(wvblv3a),4))
      for ii=1 to wvblv3b:print"61FFFF":next
      print "61"+mid$(wvblv3as$,3,2)+mid$(wvblv3as$,1,2)
      end if
    end if
  wend
print:print "66":print
close #1


